Le menu de saisie

Nous allons ici construire un menu permettant au joueur de saisir un texte.

Construction

Commençons par créer la fonction qui englobera la création du menu pour le joueur :

public void CreatePanel(Player player) { }

Ensuite, appelons le constructeur en utilisant le type Input :

UIPanel inputPanel = new UIPanel("Menu de saisie", UIPanel.PanelType.Input);

Nous pouvons ensuite définir le texte avec la méthode SetText() :

inputPanel.SetText("Voici le texte affiché sur votre menu");

Et mettre un texte d’exemple dans la zone de saisie avec la méthode SetInputPlaceholder() :

inputPanel.SetInputPlaceholder("Le texte d'exemple");

Nous pouvons également ajouter un bouton Fermer avec la méthode AddButton() qui fermera le menu que nous intitulerons panel :

inputPanel.AddButton("Fermer", (panel) =>
{
    player.ClosePanel(panel);
});

Et un bouton Valider qui affichera dans la console le texte rentré dans le champs de saisie :

inputPanel.AddButton("Valider", (panel) =>
{
    Debug.Log(panel.inputText);
});

Il ne nous reste plus qu’à afficher le menu au joueur avec la méthode ShowPanelUI() :

player.ShowPanelUI(textPanel);

Résultat

Le code complet

public void CreatePanel(Player player)
{
    UIPanel inputPanel = new UIPanel("Menu de saisie", UIPanel.PanelType.Input);

    inputPanel.SetText("Voici le texte affiché sur votre menu");

    inputPanel.AddButton("Fermer", (panel) =>
    {
        player.ClosePanel(panel);
    });

    inputPanel.AddButton("Valider", (panel) =>
    {
        Debug.Log(panel.inputText);
    });

    player.ShowPanelUI(inputPanel);
}

Une version simplifiée

public void CreatePanel(Player player)
{
    UIPanel inputPanel = new UIPanel("Menu de saisie", UIPanel.PanelType.Input)
    .SetText("Voici le texte affiché sur votre menu");
    .AddButton("Fermer", (panel) =>
    {
        player.ClosePanel(panel);
    })
    .AddButton("Valider", (panel) =>
    {
        Debug.Log(panel.inputText);
    });

    player.ShowPanelUI(inputPanel);
}

ℹ️ Remarques
- Vous pouvez masquer le texte saisi en activant le booléen isPassword avant d’afficher le panel :

inputPanel.isPassword = true;